home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / mips / include / asm / asmmacro.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.8 KB  |  93 lines

  1. /*
  2.  * This file is subject to the terms and conditions of the GNU General Public
  3.  * License.  See the file "COPYING" in the main directory of this archive
  4.  * for more details.
  5.  *
  6.  * Copyright (C) 2003 Ralf Baechle
  7.  */
  8. #ifndef _ASM_ASMMACRO_H
  9. #define _ASM_ASMMACRO_H
  10.  
  11. #include <asm/hazards.h>
  12.  
  13. #ifdef CONFIG_32BIT
  14. #include <asm/asmmacro-32.h>
  15. #endif
  16. #ifdef CONFIG_64BIT
  17. #include <asm/asmmacro-64.h>
  18. #endif
  19. #ifdef CONFIG_MIPS_MT_SMTC
  20. #include <asm/mipsmtregs.h>
  21. #endif
  22.  
  23. #ifdef CONFIG_MIPS_MT_SMTC
  24.     .macro    local_irq_enable reg=t0
  25.     mfc0    \reg, CP0_TCSTATUS
  26.     ori    \reg, \reg, TCSTATUS_IXMT
  27.     xori    \reg, \reg, TCSTATUS_IXMT
  28.     mtc0    \reg, CP0_TCSTATUS
  29.     _ehb
  30.     .endm
  31.  
  32.     .macro    local_irq_disable reg=t0
  33.     mfc0    \reg, CP0_TCSTATUS
  34.     ori    \reg, \reg, TCSTATUS_IXMT
  35.     mtc0    \reg, CP0_TCSTATUS
  36.     _ehb
  37.     .endm
  38. #elif defined(CONFIG_CPU_MIPSR2)
  39.     .macro    local_irq_enable reg=t0
  40.     ei
  41.     irq_enable_hazard
  42.     .endm
  43.  
  44.     .macro    local_irq_disable reg=t0
  45.     di
  46.     irq_disable_hazard
  47.     .endm
  48. #else
  49.     .macro    local_irq_enable reg=t0
  50.     mfc0    \reg, CP0_STATUS
  51.     ori    \reg, \reg, 1
  52.     mtc0    \reg, CP0_STATUS
  53.     irq_enable_hazard
  54.     .endm
  55.  
  56.     .macro    local_irq_disable reg=t0
  57.     mfc0    \reg, CP0_STATUS
  58.     ori    \reg, \reg, 1
  59.     xori    \reg, \reg, 1
  60.     mtc0    \reg, CP0_STATUS
  61.     irq_disable_hazard
  62.     .endm
  63. #endif /* CONFIG_MIPS_MT_SMTC */
  64.  
  65. /*
  66.  * Temporary until all gas have MT ASE support
  67.  */
  68.     .macro    DMT    reg=0
  69.     .word    0x41600bc1 | (\reg << 16)
  70.     .endm
  71.  
  72.     .macro    EMT    reg=0
  73.     .word    0x41600be1 | (\reg << 16)
  74.     .endm
  75.  
  76.     .macro    DVPE    reg=0
  77.     .word    0x41600001 | (\reg << 16)
  78.     .endm
  79.  
  80.     .macro    EVPE    reg=0
  81.     .word    0x41600021 | (\reg << 16)
  82.     .endm
  83.  
  84.     .macro    MFTR    rt=0, rd=0, u=0, sel=0
  85.      .word    0x41000000 | (\rt << 16) | (\rd << 11) | (\u << 5) | (\sel)
  86.     .endm
  87.  
  88.     .macro    MTTR    rt=0, rd=0, u=0, sel=0
  89.      .word    0x41800000 | (\rt << 16) | (\rd << 11) | (\u << 5) | (\sel)
  90.     .endm
  91.  
  92. #endif /* _ASM_ASMMACRO_H */
  93.